﻿using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace AdTech.Snap.Test
{
    /// <summary>
    /// This is a test class for DropboxFactoryTest and is intended
    /// to contain all DropboxFactoryTest Unit Tests
    /// </summary>
    [TestClass()]
    public class DropboxFactoryTest
    {
        /// <summary>
        /// Gets or sets the test context which provides
        /// information about and functionality for the current test run.
        /// </summary>
        public TestContext TestContext { get; set; }

        #region Additional test attributes
        // 
        //You can use the following additional attributes as you write your tests:
        //
        //Use ClassInitialize to run code before running the first test in the class
        //[ClassInitialize()]
        //public static void MyClassInitialize(TestContext testContext)
        //{
        //}
        //
        //Use ClassCleanup to run code after all tests in a class have run
        //[ClassCleanup()]
        //public static void MyClassCleanup()
        //{
        //}
        //
        //Use TestInitialize to run code before running each test
        //[TestInitialize()]
        //public void MyTestInitialize()
        //{
        //}
        //
        //Use TestCleanup to run code after each test has run
        //[TestCleanup()]
        //public void MyTestCleanup()
        //{
        //}
        //
        #endregion

        /// <summary>
        /// A test for ExtractUserID
        /// </summary>
        [TestMethod()]
        public void ExtractUserIDTest()
        {
            IDropboxFactory factory = DropboxFactory.Create(0, null);
            int userID = factory.ExtractUserID("http://dl.dropbox.com/u/244993/screenshots/00-Converge_AxeToFall_front.jpg");
            Assert.AreEqual(244993, factory.ExtractUserID("http://dl.dropbox.com/u/244993/screenshots/00-Converge_AxeToFall_front.jpg"));
            Assert.AreEqual(244993, factory.ExtractUserID("http://dl.dropbox.com/u/244993/00-Converge_AxeToFall_front.jpg"));
            Assert.AreEqual(0, factory.ExtractUserID("ttp://dl.dropbox.com/u/244993/00-Converge_AxeToFall_front.jpg"));
        }

        /// <summary>
        /// A test for GenerateDropboxPublicLink
        /// </summary>
        [TestMethod()]
        public void GenerateDropboxPublicLinkTest()
        {
            IDropboxFactory factory = new DropboxFactory(24493, @"C:\Users\Conquistadore\Documents\My Dropbox\Public\screenshots\test");
            string filename = "!§$$%&()=´ TEST@ÄÖÜ'#+.jpg";
            Assert.AreEqual("http://dl.dropbox.com/u/24493/screenshots/test/!§$$%25&()=´ TEST@ÄÖÜ'#+.jpg", factory.GenerateDropboxPublicLink(filename).ToString());
        }
    }
}
